import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import sqlalchemy

# 1.将带有 [Price_Quantity] 和 [Promotion_Sales] 的原始数据导入到 MySQL 数据库，
# 使用 Python 代码建表并将提供的原始数据插入到名为 Sales 的表中。（3分）

#  1.读取 sales_data.csv 文件到 DataFrame 中。（5分）
df = pd.read_csv('sales_data.csv')

df['Price_Quantity'] = df['Price']/df['Quantity']

# 计算促销销售额比
df['Promotion_Sales'] = np.where(df['Promotion'] =='yes', df['Sales'], 0)

# print(df)

engine = sqlalchemy.create_engine('mysql+pymysql://root:123456@localhost:3306/test')

# 将数据存入到mysql中
df.to_sql(name='sales', con=engine, if_exists='replace')


# 2.从数据库中查询所有特征数据信息，并打印出来。（3分）
# df2 = pd.read_sql('sales', engine)
#
# print(df2)

# # 3.按照价格排序输出价格最高的前10个产品。（3分）
# df3 = df2.sort_values('Price', ascending=False).head(10)
# print(df3)
#
# # 4.统计平均销售额，找到高出平均销售额的产品，排序并输出前3。（3分）
# # 求出平均值
# sales_mean = df2['Sales'].mean()
# print(sales_mean)
#
# # 求出高出平均销售额的产品
# df4 = df2[ df2['Sales'] > sales_mean ]
#
# # 排序取前3名
# df4 = df4.sort_values('Sales', ascending=False).head(3)
#
# print(df4)
#
#
# # 5.按照是否促销统计出不同情况下产品数量的情况，并输出。（3分）
# df5 = df2.groupby('Promotion')['Quantity'].describe()
# print(df5)
#
# df5 = df2.groupby('Promotion')['Quantity'].sum()
# print(df5)


